package com.exthirteen.textgamescript.websocket;

import org.java_websocket.handshake.ServerHandshake;

/**
 * <p>
 * websocket 客户端监听器
 * </p>
 *
 * @author exthirteen
 * @since 2022/9/22
 */
public interface WebSocketClientListener {

    /**
     * 与服务器连接成功时触发
     * @param serverHandshake 服务器握手信息
     */
    default void onOpen(ServerHandshake serverHandshake){}

    /**
     * 当服务器发送消息时触发
     * @param message 来自服务器端的消息
     */
    void onMessage(String message);

    /**
     * 与服务器断开连接时触发
     *
     * @param code 代码
     * @param reason 附加信息
     * @param remote 返回连接的关闭是否由远程发起
     */
    default void onClose(int code, String reason, boolean remote){}

    /**
     * 发送异常时触发
     * @param ex 异常信息
     */
    default void onError(Exception ex){}

}
